/*
{
"ISFVSN" : "2",
"CREDIT": "Automatically converted from https://www.github.com/gl-transitions/gl-transitions/tree/master/multiply_blend.glsl",
"DESCRIPTION": "",
"CATEGORIES" : [
"Dissolve"
],
"INPUTS" : [
{
"NAME" : "startImage",
"TYPE" : "image"
},
{
"NAME" : "endImage",
"TYPE" : "image"
},
{
"MAX" : 1,
"DEFAULT" : 0,
"MIN" : 0,
"TYPE" : "float",
"NAME" : "progress"
}
]
}
*/
vec4 getFromColor(vec2 inUV) {
return IMG_NORM_PIXEL(startImage, inUV);
}
vec4 getToColor(vec2 inUV) {
return IMG_NORM_PIXEL(endImage, inUV);
}
// Author: Fernando Kuteken
// License: MIT
vec4 blend(vec4 a, vec4 b) {
return a * b;
}
vec4 transition (vec2 uv) {
vec4 blended = blend(getFromColor(uv), getToColor(uv));
if (progress < 0.5)
return mix(getFromColor(uv), blended, 2.0 * progress);
else
return mix(blended, getToColor(uv), 2.0 * progress - 1.0);
}
void main() {
gl_FragColor = transition(isf_FragNormCoord.xy);
}